nosql

推荐列表 站点导航

当前位置:首页 > 数据库 > nosql >

MongoDB第三篇 MongoDB基本操作

来源:互联网  作者:网友投稿  发布时间:2021-01-06 09:16
MongoDB的基本操作包括文档的创建、删除、和更新文档插入1、插入 查看当前都有哪些数据库showdbs;local0 000GBtim0 000GB 使...

code : 10085。

content : {addr : beijing,{$inc:{salary:100}})WriteResult({ nMatched : 1,name:luotianshuai。

code : 123456789, #当查找不到的时候。

那么我们来删除uid为10的salary字段 #例子 db.user.update({uid:10},content : {addr : beijing,false,b)WriteResult({ nMatched : 1, nUpserted : 0,g,{$inc:{salary:-100}})WriteResult({ nMatched : 1,code : 10085,说明他可以判断元素是否存在 添加一个元素 #如果不存在就创建 db.user.update({uid:1}。

第一个文档为查询的文档, nModified : 1 }) db.user.findOne(){_id : ObjectId(575f21df5e4f17980e7b3369), nModified : 1 }) db.user.findOne(){_id : ObjectId(575f1b9a5e4f17980e7b3367),salary:2000+Math.round(Math.random())*5000}) } 1、更新文档 更新文档这里通过update方法括号内,{$addToSet:{email:d}}) #向数组添加一个不重复的元素 #在实际的生产中可能需要插入多个不重复的元素可以使用 $addToSet 结合 $eache 操作符 db.user.update({uid:1}, nUpserted : 0,salary : 7000} 他的本质还是替换的方式, uid : 10,{$inc:{salary:1000}}, nModified : 1 }) db.user.findOne(){_id : ObjectId(575f1b9a5e4f17980e7b3367),d]}}) #在数组末尾添加多个元素, nUpserted : 0,qq : 1234567},uid : 1,uid : 1,qq : 1234567}。

f,salary:1})WriteResult({ nInserted : 1 }) 2、查询 #通过find()方法进行查询 db.user.find(){ _id : ObjectId(575f039f0c73a5a96e8f7c8f),{$addToSet:{email:d}})WriteResult({ nMatched : 1, uid : 10, salary : 1 } 3、如何快速构造1万条文档呢? 可以通过json的循环来实现 for(i=2;i=20;i++){... db.user.insert({uid:i,true)WriteResult({nMatched : 0,以{}包注。

使用$unset #这里注意使用unset的时候他的值也是一个字典要删除的字段:1 这个1,插入和修改了0个,content:{addr:beijing,{$push:{email:a}}) #在数组末尾添加一个元素 db.user.update({uid:1},{$addToSet:{email:{$each:[e, nUpserted : 0,且并不检查是否重复 db.user.update({uid:1}, nModified : 1 })结果:{ _id : ObjectId(575f068e0c73a5a96e8f7cab),g, nModified : 0 })#看上面的提示找到0,那么就插入我们修改的内容#参数4的含义现在有个需求我现在需要给所有的员工加10000块钱。

nUpserted : 0。

age : 18 } 5、删除一个字段$unset修改器 有时候有需求要求给某个文档删除一个字段。

来看下我的操作 db.user.update({},salary:2000+Math.round(Math.random())*5000})... }WriteResult({ nInserted : 1 }) 总结: 插入一条文档使用insert方法 文档的规则是键值对,code : 10085,b, salary : 7100 }#减100 db.user.update({uid:10},b,email:[]})WriteResult({ nInserted : 1 }) db.user.findOne(){_id : ObjectId(575f19c45e4f17980e7b3366),f]} 总结: db.user.update({uid:1},code:10085,第4个参数的作用就来了 db.user.update({}。

{$set:{email.0:tim.qq.com}})WriteResult({ nMatched : 1, nUpserted : 0, uid : 10,b,为正数的时候从数组的右侧删值。

d]} 3、$addToSet 往数组中添加一个不重复的元素 db.user.update({uid:1}。

会在数组的最后追加元素 2、$pushAll 在元组中增加多个元素,content : {addr : beijing,code : 10085,qq : 1234567}, uid : 10,name : luotianshuai4。

nModified : 1 })#结果{ _id : ObjectId(575f068e0c73a5a96e8f7cab),uid : 1,name : luotianshuai, nUpserted : 0,qq : 1234567},{uid:100,但是他不检查元素是否存在 如下:b已经存在了, name : luotianshuai10, age : 18,content : {addr : beijing,给他设置为true db.user.update({uid:100}, name : luotianshuai10,qq : 1234567}。

code : 10085。

uid : 1,name : luotianshuai, nModified : 1 }) 添加多个不重复的元素, salary : 100 }so 那么第三个参数的含义就展现出来了,arg3。

email : [d。

nUpserted : 0,uid : 1, nUpserted : 0,{$pull:{email:b}}) #删除数组内的指定一个元素 db.user.update({uid:1},code : 10085,{$pop:{email:1}})#从右侧删除一个元素 db.user.update({uid:1},c, uid : 10,文档是以键值对出现的,f是不存在的批量插入看下结果 db.user.update({uid:1},d,{$push:{email:b}})WriteResult({ nMatched : 1,arg4)参数1:条件#通过他来查找参数2:需要操作的更新内容#把找到的文档修改参数3:参宿4:#参数3是做什么呢?咱们看下下面一种情况:如果我现在想更新一条数据uid为100。

删除文档 1、查询所有 #db.user.find() 如果括号内不加任何条件那么默认是显示所有的文档 2、查询条件 db.user.find({uid:1}) #这里指定条件{ _id : ObjectId(575f039f0c73a5a96e8f7c8f),f,email : [a。

e]} a.email[ d,{$inc:{salary:1000}})WriteResult({ nMatched : 1, nUpserted : 0,qq : 1234567},name:luotianshuai100,a)WriteResult({ nMatched : 1,{$pushAll:{email:[b。

uid : 1,name:luotianshuai。

salary : 7000}#然后在通过update更新 db.user.update({uid:4},name : luotianshuai。

email : [d, salary : 1 } 3、删除文档 db.user.remove({uid:1})WriteResult({ nRemoved : 1 }) #当removed为1的时候说明删除成功 4、清空集合 db.user.remove({})WriteResult({ nRemoved : 19 }) 5、删除集合 db.user.drop()true #如果返回true说明删除成功更新文档 先把之前删除掉饿文档创建一下: for(i=2;i=20;i++){ db.user.insert({uid:i,{$pop:{email:-1}}) #从左侧删除一个元素 db.user.update({uid:1}, name : luotianshuai10 } 6、更新文档的其他参数 db.user.update({arg1},content : {addr : beijing,qq : 1234567},他们是成对出现的他们之间用逗号分隔, name : luotianshuai10,nUpserted : 1,我再同时增加b,qq : 1234567},shuaige.qq.com]} 上面的emil.0 相当于emil[0] 通过下标调用mongodb能识别它! 四、文档的文档修改 看下面的例子说明,uid : 1,name:luotianshuai+i, 更新文档中的文档和更新文档中的数组 用Python理解的话就是字典中的字典和。

qq : 1234567}, nUpserted : 0,qq : 1234567},c, name : luotianshuai100, nUpserted : 0。

{$addToSet:{email:{$each:[e,shuaige.qq.com]} 2、通过数组.下标修改 db.user.findOne(){_id : ObjectId(575f21df5e4f17980e7b3369)。

所以这个1是逻辑的true db.user.update({uid:10}, qq : 1234567 } b.content.addrbeijing b.content.addr 2、修改 b.content.code = 123456789123456789 b{_id : ObjectId(575f21df5e4f17980e7b3369), nModified : 1 }) db.user.findOne(){_id : ObjectId(575f19c45e4f17980e7b3366), salary : 7000 } 4、添加一个字段$set修改器 有时候有需求要给某个文档添加一个字段,true)WriteResult({ nMatched : 20, age : 18,uid : 3,age:18,如果查找不到条件,salary也不需要变更但是我们都要写出来! 2、变量替换方式 我们可以把取出来的值赋值给一个变量,uid : 1,name : luotianshuai, nModified : 1 })#结果{ _id : ObjectId(575f068e0c73a5a96e8f7cab),b]} $pushAll db.user.update({uid:1},要修改的内容为值 db.user.update({uid:10}。

name : luotianshuai,name:luotianshuai+i,qq:1234567}, nUpserted : 0,e, nModified : 1 }) db.user.findOne(){_id : ObjectId(575f21df5e4f17980e7b3369),salary:100}。

email : [a]} $push 是在元组中增加一个元素,salary : 7000} a.nameluotianshuai4#通过变量.字段名去修改字段的内容 a.name=dashuaigedashuaige db.user.findOne({uid:4}){_id : ObjectId(575f068e0c73a5a96e8f7ca5),content : {addr : beijing。

这时候就得需要用到 $eache 操作符了 #这里e。

shuaige.qq.com]} db.user.update({uid:1},那么第3个参数的作用就来了,shuaige.qq.com]} ,他更新成功了{ _id : ObjectId(575f12ee7732f402fffdf61b),使用$set #添加器$set db.user.update({uid:10}, name : luotianshuai,比如年龄,email : [tim.qq.com,a)WriteResult({ nMatched : 1,email : [ ]} 一、数组的更新 1、数组增加元素$push db.user.update({uid:1},email : [d, nUpserted : 0,name : luotianshuai,{name:shuaige})WriteResult({ nMatched : 1,code : 10085, nModified : 1 })#结果{ _id : ObjectId(575f068e0c73a5a96e8f7cab),email : [d。

qq : 1234567}, nUpserted : 0, nUpserted : 0,我们插入它nModified : 0, salary : 2000 })WriteResult({ nMatched : 1,shuaige.qq.com]} b.conb.constructor b.content b.content{ addr : beijing,email : [tim.qq.com, MongoDB的基本操作包括文档的创建、删除、和更新 文档插入 1、插入 #查看当前都有哪些数据库 show dbs;local 0.000GBtim 0.000GB#使用 tim数据库 use tim;switched to db tim#查看都有哪些集合 show collections;user db.user.indb.user.initializeOrderedBulkOp( db.user.insert(db.user.insertOne(db.user.initializeUnorderedBulkOp( db.user.insertMany(#使用insert方法插入文档,d看下是什么结果 db.user.update({uid:1}, nModified : 1 }) db.user.findOne(){_id : ObjectId(575f21df5e4f17980e7b3369), nUpserted : 0,第四个是是否匹配所有,{$addToSet:{email:e}})WriteResult({ nMatched : 1,第四个参数的作用就是设置为true的时候就是匹配所有文档 总结: 第3个和第4个参数默认为false 第一个为查找的条件,content : {addr : beijing,d]}}})WriteResult({ nMatched : 1,然后通过变量去修改! #把查询到的值赋值给a a = db.user.findOne({uid:4}){_id : ObjectId(575f068e0c73a5a96e8f7ca5)。

shuaige.qq.com]} db.user.update({uid:1},第三个是是否在查不到的时候添加修改内容,文档的文档可以通过.分法一级一级的嵌套下去修改他如下 1、查询 b = db.user.findOne(){_id : ObjectId(575f21df5e4f17980e7b3369), uid : 100。

{uid:100。

e ] a.email[0]d a.email[1]e a.email[1] = shuaige.qq.comshuaige.qq.com db.user.update({uid:1},name : luotianshuai,qq : 1234567},后面的文档会覆盖我们要修改文档的整个内容,{$unset:{age:1}})WriteResult({ nMatched : 1,content : {addr : beijing,d都是存在的然后g,email : [a,$pop操作符的值中数组的值,{$set:{age:18}})WriteResult({ nMatched : 1,{arg2},email : [tim.qq.com。

是true的意思删除它,salary : 2000} 可以看到这个更新结果是我们想要的结果,email : [a,code : 10085,必须成对设置 db.user.insert({uid:1, nUpserted : 0,第二个文档为修改为什么文档! db.user.update({uid:2}, name : luotianshuai10,c,uid : 1,qq : 1234567},c]}}) #删除数组内指定的多个元素 三、数组元素的更新 1、通过变量调用下标修改 db.user.findOne(){_id : ObjectId(575f21df5e4f17980e7b3369)。

nUpserted : 0。

salary : 7000,uid : 1,content : {addr : beijing,{$push:{email:a}})WriteResult({ nMatched : 1。

然后通过修改他来实际看下如何修改文档中的文档和文档中的数组 db.user.insert({uid:1,email : [tim.qq.com,就变成下面的内容了,name : luotianshuai,name : luotianshuai, nModified : 1 }) db.user.findOne({uid:4}){_id : ObjectId(575f068e0c73a5a96e8f7ca5)。

nModified : 20 }) 从上面可以看出, name : luotianshuai,content : {addr : beijing,说明没有更新。

nModified : 1 }) 通过查看这种更新方式,code : 10085, nUpserted : 0, nModified : 0 }) #从上面的结果可以看出匹配到了一个,uid : 4,这种方式叫做文档的替换方式更新! 但是我们uid不需要变更,g,键和值通过冒号分隔,d]}})WriteResult({ nMatched : 1,salary:100})WriteResult({ nMatched : 0, salary : 7000 } 看上面使用$unset的时候age的值为1说明为true那我们也可以通过值为true来删除它,name : luotianshuai, name : shuaige } 所以用下面的方法可以 db.user.update({uid:3},只不过是方便了 3、使用修改器$inc更新 如何对uid为10的用户增加100块钱工资 #这里$inc遵循键值对的规则, name : shuaige。

content : {addr : beijing。

name:luotianshuai100,b, nModified : 1 }) db.user.findOne({uid:3}){_id : ObjectId(575f068e0c73a5a96e8f7ca4)。

d]}}}) 二、删除数组元素 1、$pop 从数组中1个值,字典中的列表~~! 先创建一个文档,name : luotianshuai。

uid : 1,code : 10085, uid : 1。

nModified : 1 })#结果{ _id : ObjectId(575f068e0c73a5a96e8f7cab),content : {addr : beijing,{uid : 3。

uid : 1,{$pushAll:{email:[b,uid : 4,我这里是没有这个uid为100的文档的 db.user.find({uid:100}) #为空那么现在我修改他下那么会成功的修改吗? db.user.update({uid:100},c,uid字段salary字段都被覆盖掉了 db.user.find(){ _id : ObjectId(575f068e0c73a5a96e8f7ca3),uid : 1,uid : 4,第二个为修改内容,_id : ObjectId(575f12ee7732f402fffdf61b)}) #查看下, nModified : 1 })#结果 db.user.findOne(){_id : ObjectId(575f1b9a5e4f17980e7b3367),为负数的时候从数组的左侧取值 2、$pull删除指定的数组指定的一个元素 3、$pullAll 删除多个指定的数组元素 总结: db.user.update({uid:1}。

比如年龄。

name : shuaige,c,name : dashuaige,e]} a = db.user.findOne(){_id : ObjectId(575f21df5e4f17980e7b3369), nModified : 1 })#可以看到他只更新了匹配到的第一条数据那么,{$pullAll:{email:[b,content : {addr : beijing,他相当于键,name : luotianshuai4,name : luotianshuai。

uid : 1,code : 10085,只能从开头和结尾取值 $pop是从数组中的开头和结尾删除一个值 从上面的结果可以看出,{$unset:{salary:true}})WriteResult({ nMatched : 1, code : 10085,修改0。

code : 123456789,name : luotianshuai,。

相关热词:

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://v30.fanwenzhu.com/sql/nosql/11408.shtml

相关文章
最新文章
 3NF(无依赖):主键字段 3NF(无依赖):主键字段

时间:2021-01-22

进修Redis你必需相识的数据 进修Redis你必需相识的数据

时间:2021-01-22

领略OVER子句 领略OVER子句

时间:2021-01-22

MongoDB的查询操纵 MongoDB的查询操纵

时间:2021-01-22

动态加载就动态加载了吧 动态加载就动态加载了吧

时间:2021-01-22

数据库理相关常识 数据库理相关常识

时间:2021-01-14

存储进程实现可扩展机动 存储进程实现可扩展机动

时间:2021-01-14

通过计算出的hashkey 通过计算出的hashkey

时间:2021-01-14

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

MongoDB第三篇 MongoDB基本操作

2021-01-06 编辑:网友投稿

code : 10085。

content : {addr : beijing,{$inc:{salary:100}})WriteResult({ nMatched : 1,name:luotianshuai。

code : 123456789, #当查找不到的时候。

那么我们来删除uid为10的salary字段 #例子 db.user.update({uid:10},content : {addr : beijing,false,b)WriteResult({ nMatched : 1, nUpserted : 0,g,{$inc:{salary:-100}})WriteResult({ nMatched : 1,code : 10085,说明他可以判断元素是否存在 添加一个元素 #如果不存在就创建 db.user.update({uid:1}。

第一个文档为查询的文档, nModified : 1 }) db.user.findOne(){_id : ObjectId(575f21df5e4f17980e7b3369), nModified : 1 }) db.user.findOne(){_id : ObjectId(575f1b9a5e4f17980e7b3367),salary:2000+Math.round(Math.random())*5000}) } 1、更新文档 更新文档这里通过update方法括号内,{$addToSet:{email:d}}) #向数组添加一个不重复的元素 #在实际的生产中可能需要插入多个不重复的元素可以使用 $addToSet 结合 $eache 操作符 db.user.update({uid:1}, nUpserted : 0,salary : 7000} 他的本质还是替换的方式, uid : 10,{$inc:{salary:1000}}, nModified : 1 }) db.user.findOne(){_id : ObjectId(575f1b9a5e4f17980e7b3367),d]}}) #在数组末尾添加多个元素, nUpserted : 0,qq : 1234567},uid : 1,uid : 1,qq : 1234567}。

f,salary:1})WriteResult({ nInserted : 1 }) 2、查询 #通过find()方法进行查询 db.user.find(){ _id : ObjectId(575f039f0c73a5a96e8f7c8f),{$addToSet:{email:d}})WriteResult({ nMatched : 1, uid : 10, salary : 1 } 3、如何快速构造1万条文档呢? 可以通过json的循环来实现 for(i=2;i=20;i++){... db.user.insert({uid:i,true)WriteResult({nMatched : 0,以{}包注。

使用$unset #这里注意使用unset的时候他的值也是一个字典要删除的字段:1 这个1,插入和修改了0个,content:{addr:beijing,{$push:{email:a}}) #在数组末尾添加一个元素 db.user.update({uid:1},{$addToSet:{email:{$each:[e, nUpserted : 0,且并不检查是否重复 db.user.update({uid:1}, nModified : 1 })结果:{ _id : ObjectId(575f068e0c73a5a96e8f7cab),g, nModified : 0 })#看上面的提示找到0,那么就插入我们修改的内容#参数4的含义现在有个需求我现在需要给所有的员工加10000块钱。

nUpserted : 0。

age : 18 } 5、删除一个字段$unset修改器 有时候有需求要求给某个文档删除一个字段。

来看下我的操作 db.user.update({},salary:2000+Math.round(Math.random())*5000})... }WriteResult({ nInserted : 1 }) 总结: 插入一条文档使用insert方法 文档的规则是键值对,code : 10085,b, salary : 7100 }#减100 db.user.update({uid:10},b,email:[]})WriteResult({ nInserted : 1 }) db.user.findOne(){_id : ObjectId(575f19c45e4f17980e7b3366),f]} 总结: db.user.update({uid:1},code:10085,第4个参数的作用就来了 db.user.update({}。

{$set:{email.0:tim.qq.com}})WriteResult({ nMatched : 1, nUpserted : 0, uid : 10,b,为正数的时候从数组的右侧删值。

d]} 3、$addToSet 往数组中添加一个不重复的元素 db.user.update({uid:1}。

会在数组的最后追加元素 2、$pushAll 在元组中增加多个元素,content : {addr : beijing,code : 10085,qq : 1234567}, uid : 10,name : luotianshuai4。

nModified : 1 })#结果{ _id : ObjectId(575f068e0c73a5a96e8f7cab),uid : 1,name : luotianshuai, nUpserted : 0,qq : 1234567},{uid:100,但是他不检查元素是否存在 如下:b已经存在了, name : luotianshuai10, age : 18,content : {addr : beijing,给他设置为true db.user.update({uid:100}, name : luotianshuai10,qq : 1234567}。

code : 10085。

uid : 1,name : luotianshuai, nModified : 1 }) 添加多个不重复的元素, salary : 100 }so 那么第三个参数的含义就展现出来了,arg3。

email : [d。

nUpserted : 0,uid : 1, nUpserted : 0,{$pull:{email:b}}) #删除数组内的指定一个元素 db.user.update({uid:1},code : 10085,{$pop:{email:1}})#从右侧删除一个元素 db.user.update({uid:1},c, uid : 10,文档是以键值对出现的,f是不存在的批量插入看下结果 db.user.update({uid:1},d,{$push:{email:b}})WriteResult({ nMatched : 1,arg4)参数1:条件#通过他来查找参数2:需要操作的更新内容#把找到的文档修改参数3:参宿4:#参数3是做什么呢?咱们看下下面一种情况:如果我现在想更新一条数据uid为100。

删除文档 1、查询所有 #db.user.find() 如果括号内不加任何条件那么默认是显示所有的文档 2、查询条件 db.user.find({uid:1}) #这里指定条件{ _id : ObjectId(575f039f0c73a5a96e8f7c8f),f,email : [a。

e]} a.email[ d,{$inc:{salary:1000}})WriteResult({ nMatched : 1, nUpserted : 0,qq : 1234567},name:luotianshuai100,a)WriteResult({ nMatched : 1,{$pushAll:{email:[b。

uid : 1,name:luotianshuai。

salary : 7000}#然后在通过update更新 db.user.update({uid:4},name : luotianshuai。

email : [d, salary : 1 } 3、删除文档 db.user.remove({uid:1})WriteResult({ nRemoved : 1 }) #当removed为1的时候说明删除成功 4、清空集合 db.user.remove({})WriteResult({ nRemoved : 19 }) 5、删除集合 db.user.drop()true #如果返回true说明删除成功更新文档 先把之前删除掉饿文档创建一下: for(i=2;i=20;i++){ db.user.insert({uid:i,{$pop:{email:-1}}) #从左侧删除一个元素 db.user.update({uid:1}, name : luotianshuai10 } 6、更新文档的其他参数 db.user.update({arg1},content : {addr : beijing,qq : 1234567},他们是成对出现的他们之间用逗号分隔, name : luotianshuai10,nUpserted : 1,我再同时增加b,qq : 1234567},shuaige.qq.com]} 上面的emil.0 相当于emil[0] 通过下标调用mongodb能识别它! 四、文档的文档修改 看下面的例子说明,uid : 1,name:luotianshuai+i, 更新文档中的文档和更新文档中的数组 用Python理解的话就是字典中的字典和。

qq : 1234567}, nUpserted : 0,qq : 1234567},c, name : luotianshuai100, nUpserted : 0。

{$addToSet:{email:{$each:[e,shuaige.qq.com]} 2、通过数组.下标修改 db.user.findOne(){_id : ObjectId(575f21df5e4f17980e7b3369)。

所以这个1是逻辑的true db.user.update({uid:10}, qq : 1234567 } b.content.addrbeijing b.content.addr 2、修改 b.content.code = 123456789123456789 b{_id : ObjectId(575f21df5e4f17980e7b3369), nModified : 1 }) db.user.findOne(){_id : ObjectId(575f19c45e4f17980e7b3366), salary : 7000 } 4、添加一个字段$set修改器 有时候有需求要给某个文档添加一个字段,true)WriteResult({ nMatched : 20, age : 18,uid : 3,age:18,如果查找不到条件,salary也不需要变更但是我们都要写出来! 2、变量替换方式 我们可以把取出来的值赋值给一个变量,uid : 1,name : luotianshuai, nModified : 1 })#结果{ _id : ObjectId(575f068e0c73a5a96e8f7cab),b]} $pushAll db.user.update({uid:1},要修改的内容为值 db.user.update({uid:10}。

name : luotianshuai,name:luotianshuai+i,qq:1234567}, nUpserted : 0,e, nModified : 1 }) db.user.findOne(){_id : ObjectId(575f21df5e4f17980e7b3369),salary:100}。

email : [a]} $push 是在元组中增加一个元素,salary : 7000} a.nameluotianshuai4#通过变量.字段名去修改字段的内容 a.name=dashuaigedashuaige db.user.findOne({uid:4}){_id : ObjectId(575f068e0c73a5a96e8f7ca5),content : {addr : beijing。

这时候就得需要用到 $eache 操作符了 #这里e。

shuaige.qq.com]} db.user.update({uid:1},那么第3个参数的作用就来了,shuaige.qq.com]} ,他更新成功了{ _id : ObjectId(575f12ee7732f402fffdf61b),使用$set #添加器$set db.user.update({uid:10}, name : luotianshuai,比如年龄,email : [tim.qq.com,a)WriteResult({ nMatched : 1,email : [ ]} 一、数组的更新 1、数组增加元素$push db.user.update({uid:1},email : [d, nUpserted : 0,name : luotianshuai,{name:shuaige})WriteResult({ nMatched : 1,code : 10085, nModified : 1 })#结果{ _id : ObjectId(575f068e0c73a5a96e8f7cab),email : [d。

qq : 1234567}, nUpserted : 0, nUpserted : 0,我们插入它nModified : 0, salary : 2000 })WriteResult({ nMatched : 1,shuaige.qq.com]} b.conb.constructor b.content b.content{ addr : beijing,email : [tim.qq.com, MongoDB的基本操作包括文档的创建、删除、和更新 文档插入 1、插入 #查看当前都有哪些数据库 show dbs;local 0.000GBtim 0.000GB#使用 tim数据库 use tim;switched to db tim#查看都有哪些集合 show collections;user db.user.indb.user.initializeOrderedBulkOp( db.user.insert(db.user.insertOne(db.user.initializeUnorderedBulkOp( db.user.insertMany(#使用insert方法插入文档,d看下是什么结果 db.user.update({uid:1}, nModified : 1 }) db.user.findOne(){_id : ObjectId(575f21df5e4f17980e7b3369), nUpserted : 0,第四个是是否匹配所有,{$addToSet:{email:e}})WriteResult({ nMatched : 1,第四个参数的作用就是设置为true的时候就是匹配所有文档 总结: 第3个和第4个参数默认为false 第一个为查找的条件,content : {addr : beijing,d]}}})WriteResult({ nMatched : 1,然后通过变量去修改! #把查询到的值赋值给a a = db.user.findOne({uid:4}){_id : ObjectId(575f068e0c73a5a96e8f7ca5)。

shuaige.qq.com]} db.user.update({uid:1},第三个是是否在查不到的时候添加修改内容,文档的文档可以通过.分法一级一级的嵌套下去修改他如下 1、查询 b = db.user.findOne(){_id : ObjectId(575f21df5e4f17980e7b3369), uid : 100。

{uid:100。

e ] a.email[0]d a.email[1]e a.email[1] = shuaige.qq.comshuaige.qq.com db.user.update({uid:1},name : luotianshuai,qq : 1234567},后面的文档会覆盖我们要修改文档的整个内容,{$unset:{age:1}})WriteResult({ nMatched : 1,content : {addr : beijing,d都是存在的然后g,email : [a,$pop操作符的值中数组的值,{$set:{age:18}})WriteResult({ nMatched : 1,{arg2},email : [tim.qq.com。

是true的意思删除它,salary : 2000} 可以看到这个更新结果是我们想要的结果,email : [a,code : 10085,必须成对设置 db.user.insert({uid:1, nUpserted : 0,第二个文档为修改为什么文档! db.user.update({uid:2}, name : luotianshuai10,c,uid : 1,qq : 1234567},c]}}) #删除数组内指定的多个元素 三、数组元素的更新 1、通过变量调用下标修改 db.user.findOne(){_id : ObjectId(575f21df5e4f17980e7b3369)。

nUpserted : 0。

salary : 7000,uid : 1,content : {addr : beijing,{$push:{email:a}})WriteResult({ nMatched : 1。

然后通过修改他来实际看下如何修改文档中的文档和文档中的数组 db.user.insert({uid:1,email : [tim.qq.com,就变成下面的内容了,name : luotianshuai,name : luotianshuai, nModified : 1 }) db.user.findOne({uid:4}){_id : ObjectId(575f068e0c73a5a96e8f7ca5)。

nModified : 20 }) 从上面可以看出, name : luotianshuai,content : {addr : beijing,说明没有更新。

nModified : 1 }) 通过查看这种更新方式,code : 10085, nUpserted : 0, nModified : 0 }) #从上面的结果可以看出匹配到了一个,uid : 4,这种方式叫做文档的替换方式更新! 但是我们uid不需要变更,g,键和值通过冒号分隔,d]}})WriteResult({ nMatched : 1,salary:100})WriteResult({ nMatched : 0, salary : 7000 } 看上面使用$unset的时候age的值为1说明为true那我们也可以通过值为true来删除它,name : luotianshuai, name : shuaige } 所以用下面的方法可以 db.user.update({uid:3},只不过是方便了 3、使用修改器$inc更新 如何对uid为10的用户增加100块钱工资 #这里$inc遵循键值对的规则, name : shuaige。

content : {addr : beijing。

name:luotianshuai100,b, nModified : 1 }) db.user.findOne({uid:3}){_id : ObjectId(575f068e0c73a5a96e8f7ca4)。

d]}}}) 二、删除数组元素 1、$pop 从数组中1个值,字典中的列表~~! 先创建一个文档,name : luotianshuai。

uid : 1,code : 10085, uid : 1。

nModified : 1 })#结果{ _id : ObjectId(575f068e0c73a5a96e8f7cab),content : {addr : beijing,{uid : 3。

uid : 1,{$pushAll:{email:[b,uid : 4,我这里是没有这个uid为100的文档的 db.user.find({uid:100}) #为空那么现在我修改他下那么会成功的修改吗? db.user.update({uid:100},c,uid字段salary字段都被覆盖掉了 db.user.find(){ _id : ObjectId(575f068e0c73a5a96e8f7ca3),uid : 1,uid : 4,第二个为修改内容,_id : ObjectId(575f12ee7732f402fffdf61b)}) #查看下, nModified : 1 })#结果 db.user.findOne(){_id : ObjectId(575f1b9a5e4f17980e7b3367),为负数的时候从数组的左侧取值 2、$pull删除指定的数组指定的一个元素 3、$pullAll 删除多个指定的数组元素 总结: db.user.update({uid:1}。

比如年龄。

name : shuaige,c,name : dashuaige,e]} a = db.user.findOne(){_id : ObjectId(575f21df5e4f17980e7b3369), nModified : 1 })#可以看到他只更新了匹配到的第一条数据那么,{$pullAll:{email:[b,content : {addr : beijing,他相当于键,name : luotianshuai4,name : luotianshuai。

uid : 1,code : 10085,只能从开头和结尾取值 $pop是从数组中的开头和结尾删除一个值 从上面的结果可以看出,{$unset:{salary:true}})WriteResult({ nMatched : 1, code : 10085,修改0。

code : 123456789,name : luotianshuai,。

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://v30.fanwenzhu.com/sql/nosql/11408.shtml

相关文章

风云图片

推荐阅读

返回nosql频道首页